New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kernel/x86: merge "generic" into "legacy" #14944
base: main
Are you sure you want to change the base?
Conversation
@@ -3,7 +3,7 @@ define Device/generic | |||
DEVICE_MODEL := x86/legacy | |||
DEVICE_PACKAGES += kmod-3c59x kmod-8139too kmod-e100 kmod-e1000 \ | |||
kmod-natsemi kmod-ne2k-pci kmod-pcnet32 kmod-r8169 kmod-sis900 \ | |||
kmod-tg3 kmod-via-rhine kmod-via-velocity kmod-forcedeth | |||
kmod-tg3 kmod-via-rhine kmod-via-velocity kmod-forcedeth kmod-fs-vfat |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems odd kmod-fs-vfat
is presently absent from legacy anyway. This simply comes from generic
.
CONFIG_EFI=y | ||
CONFIG_EFIVAR_FS=m | ||
# CONFIG_EFI_BOOTLOADER_CONTROL is not set | ||
# CONFIG_EFI_CAPSULE_LOADER is not set | ||
# CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH is not set | ||
# CONFIG_EFI_COCO_SECRET is not set | ||
# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set | ||
# CONFIG_EFI_DISABLE_PCI_DMA is not set | ||
# CONFIG_EFI_DISABLE_RUNTIME is not set | ||
CONFIG_EFI_DXE_MEM_ATTRIBUTES=y | ||
CONFIG_EFI_EARLYCON=y | ||
CONFIG_EFI_ESRT=y | ||
# CONFIG_EFI_FAKE_MEMMAP is not set | ||
CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y | ||
# CONFIG_EFI_PGT_DUMP is not set | ||
# CONFIG_EFI_RCI2_TABLE is not set | ||
CONFIG_EFI_RUNTIME_MAP=y | ||
CONFIG_EFI_RUNTIME_WRAPPERS=y | ||
CONFIG_EFI_STUB=y | ||
# CONFIG_EFI_TEST is not set | ||
# CONFIG_EFI_VARS is not set |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe 32-bit EFI implementations did exist. I'm a bit doubtful about including support in legacy
, but generic
did have it enabled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think efi is very uncommon on such systems, but I would keep it for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe remove it.
CONFIG_HYPERV=y | ||
CONFIG_HYPERVISOR_GUEST=y | ||
CONFIG_HYPERV_BALLOON=y | ||
CONFIG_HYPERV_KEYBOARD=y | ||
CONFIG_HYPERV_NET=y | ||
CONFIG_HYPERV_STORAGE=y | ||
# CONFIG_HYPERV_TESTING is not set | ||
CONFIG_HYPERV_TIMER=y | ||
CONFIG_HYPERV_UTILS=y |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was present in generic
. I suspect 32-bit kernels are rarely used in Hyper-V VMs, yet it had been enabled.
CONFIG_PINCTRL=y | ||
CONFIG_PINCTRL_ALDERLAKE=y | ||
CONFIG_PINCTRL_BAYTRAIL=y | ||
CONFIG_PINCTRL_BROXTON=y | ||
CONFIG_PINCTRL_CANNONLAKE=y | ||
CONFIG_PINCTRL_CHERRYVIEW=y | ||
CONFIG_PINCTRL_DENVERTON=y | ||
CONFIG_PINCTRL_ELKHARTLAKE=y | ||
CONFIG_PINCTRL_EMMITSBURG=y | ||
CONFIG_PINCTRL_GEMINILAKE=y | ||
CONFIG_PINCTRL_INTEL=y | ||
CONFIG_PINCTRL_JASPERLAKE=y | ||
CONFIG_PINCTRL_LAKEFIELD=y | ||
CONFIG_PINCTRL_LEWISBURG=y | ||
CONFIG_PINCTRL_LYNXPOINT=y | ||
CONFIG_PINCTRL_METEORLAKE=y | ||
CONFIG_PINCTRL_SUNRISEPOINT=y | ||
CONFIG_PINCTRL_TIGERLAKE=y |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would be rather rare in a legacy system, but again copying from generic
.
# CONFIG_SERIAL_MULTI_INSTANTIATE is not set | ||
CONFIG_SMP=y |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SMP is uncommon on legacy
systems, but anything P6 or later could do it.
CONFIG_KVM=y | ||
CONFIG_KVM_AMD=y | ||
CONFIG_KVM_ASYNC_PF=y | ||
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y | ||
CONFIG_KVM_GUEST=y | ||
CONFIG_KVM_INTEL=y | ||
CONFIG_KVM_MMIO=y | ||
CONFIG_KVM_VFIO=y | ||
# CONFIG_KVM_XEN is not set | ||
CONFIG_KVM_XFER_TO_GUEST_WORK=y |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm unsure kernel-VM was back-ported to function on legacy
-class hardware. Yet this had been enabled in generic
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe someone wants to use a 32 bit OpenWrt on a modern CPU in KVM.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The danger is it could bloat legacy
to the point it was too big for actual legacy hardware. Between legacy hardware and 32-bit KVM, legacy hardware seems the more valuable target.
CONFIG_XEN=y | ||
CONFIG_XENFS=y | ||
CONFIG_XEN_ACPI=y | ||
CONFIG_XEN_AUTO_XLATE=y | ||
# CONFIG_XEN_BACKEND is not set | ||
CONFIG_XEN_BALLOON=y | ||
CONFIG_XEN_BLKDEV_FRONTEND=y | ||
CONFIG_XEN_COMPAT_XENFS=y | ||
CONFIG_XEN_DEBUG_FS=y | ||
CONFIG_XEN_DEV_EVTCHN=y | ||
CONFIG_XEN_FBDEV_FRONTEND=y | ||
CONFIG_XEN_GNTDEV=y | ||
CONFIG_XEN_GRANT_DEV_ALLOC=y | ||
CONFIG_XEN_NETDEV_FRONTEND=y | ||
CONFIG_XEN_PRIVCMD=y | ||
CONFIG_XEN_PVH=y | ||
CONFIG_XEN_PVHVM=y | ||
CONFIG_XEN_PVHVM_GUEST=y | ||
CONFIG_XEN_PVHVM_SMP=y | ||
CONFIG_XEN_SAVE_RESTORE=y | ||
CONFIG_XEN_SCSI_FRONTEND=y | ||
CONFIG_XEN_SYS_HYPERVISOR=y | ||
CONFIG_XEN_VIRTIO=y | ||
# CONFIG_XEN_VIRTIO_FORCE_GRANT is not set | ||
CONFIG_XEN_WDT=y | ||
CONFIG_XEN_XENBUS_FRONTEND=y |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Of all the hypervisors, Xen was originally written to function on legacy
-class hardware. The support may die off soon if it hasn't already been killed, but it did work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The configuration options from generic
were copied to legacy
. Quite a few of these seem rather implausible for a generic
or legacy
-class system, but they had been enabled.
This would need advice as to which of these to kill.
Also please prepare patches for kernel 6.6 so that the PR is ready for commit #14868 |
There wouldn't be much difference. Simply duplicates everything for 6.6. If this got approved quickly it might go in before #14868. |
The order of approval is still a mystery to me ;) |
Just as long as the order of operations isn't. What is really needed is opinions on which options should really be copied from |
I guess we could almost simply dump Any comments on whether any of these should be dumped instead of propagated to |
There is a desire to reduce the time spent on x86 OpenWRT platforms. "generic" is most suitable for removal. The few systems which could use "generic" must now opt for "legacy" (or for a lucky few "64"). Closes: openwrt#14231 Signed-off-by: Elliott Mitchell <ehem+openwrt@m5p.com>
Hmm, unsure why I deleted the branch. Perhaps didn't want markers hanging around in |
The more I look at this, the more I'm favoring simply deleting "generic" instead of merging it into "legacy". The reason being "generic" has too many settings appropriate for a mid-end machine. Merging it into "legacy" may well bloat "legacy" enough that it no longer runs on most legacy-class systems. Whereas most systems which want those settings can instead run "64". About the only thing possibly appropriate to merge into "legacy" is the Xen support. Xen could be used on genuine legacy-class hardware. |
The build of the legacy target fails like this:
|
I would keep the virtualization support for xen, kvm and hyperv. You can run the 32 bit system on a modern CPU in virtualization. This may be used for testing generic stuff. I think we can remove the EFI support. It is very uncommon. |
Please add a commit to remove |
CONFIG_INTEL_GTT=y | ||
CONFIG_INTEL_IDLE=y | ||
# CONFIG_INTEL_IPS is not set | ||
# CONFIG_INTEL_MEI_GSC_PROXY is not set | ||
# CONFIG_INTEL_MEI_HDCP is not set | ||
# CONFIG_INTEL_MEI_PXP is not set | ||
# CONFIG_INTEL_MENLOW is not set |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please run make kernel_oldconfig CONFIG_TARGET=subtarget
to refresh the configuration.
This is likely better served by having |
There is a desire to reduce the time spent on x86 OpenWRT platforms. "generic" is most suitable for removal. The few systems which could use "generic" must now opt for "legacy" (or for a lucky few "64").
Closes: #14231